<template>
    <BasicTable @register="registerTable" :searchInfo="searchInfo">
      <template #tableTitle>
        <a-tabs defaultActiveKey="1" @change="tabChange" size="small">
          <a-tab-pane tab="登录日志" key="1"></a-tab-pane>
          <a-tab-pane tab="操作日志" key="2"></a-tab-pane>
        </a-tabs>
      </template>
        <template #expandedRowRender="{ record }">
            <div v-if="searchInfo.logType==2">
                <div style="margin-bottom: 5px">
                    <a-badge status="success" style="vertical-align: middle;"/>
                    <span style="vertical-align: middle;">请求方法:{{ record.method }}</span></div>
                <div>
                    <a-badge status="processing" style="vertical-align: middle;"/>
                    <span style="vertical-align: middle;">请求参数:{{ record.requestParam }}</span></div>
            </div>
        </template>
    </BasicTable>
</template>
<script lang="ts" name="monitor-log" setup>
  import { ref } from 'vue';
  import { BasicTable, useTable, TableAction } from '/@/components/Table';
  import { getLogList } from './log.api';
  import { columns, searchFormSchema } from './log.data';
  import { useMessage } from '/@/hooks/web/useMessage';
  import { useListPage } from '/@/hooks/system/useListPage'
  const { createMessage } = useMessage();
  const checkedKeys = ref<Array<string | number>>([]);

  const searchInfo = { logType: '1' };
  // 列表页面公共参数、方法
  const { prefixCls,tableContext } = useListPage({
    designScope: 'user-list',
    tableProps: {
      title: '日志列表',
      api: getLogList,
      columns: columns,
      expandRowByClick: true,
      rowSelection:{
        columnWidth:20
      },
      formConfig: {
        schemas:searchFormSchema,
        fieldMapToTime: [['fieldTime', ['createTime_begin', 'createTime_end'], 'YYYY-MM-DD HH:mm:ss']],
      },
    }
  })


  const [registerTable, { reload }] = tableContext;


  // 日志类型
  function tabChange(key) {
    searchInfo.logType = key;
    reload();
  }

  /**
   * 选择事件
   */
  function onSelectChange(selectedRowKeys: (string | number)[]) {
    checkedKeys.value = selectedRowKeys;
  }

</script>
